有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Weblogic中有两个EAR的java Log4j日志记录问题

我在Weblogic 10、A和B中部署了两个EAR。在这两个版本中,我都有一个“log4j.properties”文件。在启动时,当第一个ear加载时,日志将被加载到正确的文件“A.log”,但当第二个ear加载时,所有日志都将被加载到“B.log”文件,甚至是与第一个ear相关的日志。 我错过了什么。。。知道吗

谢谢

编辑/解决方案: 类加载器问题。 添加到weblogic应用程序。xml:

<wls:prefer-application-packages> <wls:package-name>org.apache.log4j.*</wls:package-name> </wls:prefer-application-packages>

(对大家说:)


共 (2) 个答案

  1. # 1 楼答案

    老实说,很难从这里分辨出来,但你可以试试这些:

    1)检查两个log4j属性文件中的记录器名称是否唯一
    2) 我认为这是最重要的。属性文件未缓存在磁盘上,但仍在删除应用程序 部署目录(两个EAR的部署目录应该是分开的)

  2. # 2 楼答案

    我猜Weblogic服务器使用的log4j库在您的两个web应用程序中都使用过

    如果是这种情况,两个web应用程序将共享一个根类加载器,为Weblogic加载的全局库提供服务

    如果您的web应用程序都提供了log4j的副本,并且如果您可以选择在服务器类之前加载应用程序类(我不知道Weblogic,但对于WebSphere,设置为“classloader mode:parent first/parent last”),这可能会解决您的问题